cdt() {
emulate -L zsh
- REPLY=$(mktemp -td ${1:-cdt}.XXXXXX)
- builtin cd "$REPLY"
- rm -f ${TMPDIR:-/tmp}/cdt.latest
- ln -s "$REPLY" ${TMPDIR:-/tmp}/cdt.latest
+ local dirname="$(date +'%F-%H%M%S')${1:+-$1}"
+ REPLY="${TMPDIR:-/tmp}/$dirname"
+ mkdir -m700 "$REPLY"
+ if [[ -n "$1" ]]; then
+ local link="${TMPDIR:-/tmp}/${1:-cdt}"
+ ln -Tnsf "$dirname" "$link"
+ builtin cd "$link"
+ else
+ builtin cd "$REPLY"
+ fi
echo "$REPLY"
}
vit() {
emulate -L zsh
- local prefix i
+ local i tag
for i in "$@"; do
case "$i" in
-) local stdin=1; shift;;
- *) if [ -z "${prefix:-}" ]; then
- prefix="$i"; shift
+ .*) if [ -z "${ft:-}" ]; then
+ ft="${i#.}"; shift
+ else
+ zwarn "filetype $ft already specified, skipping: ${i#.}"
+ fi
+ ;;
+ *) if [ -z "${tag:-}" ]; then
+ tag="$i"; shift
else
- zwarn "prefix $prefix already specified, skipping: $i"
+ zwarn "tag $tag already specified, skipping: $i"
fi
;;
esac
done
- REPLY=$(mktemp -t ${prefix:-vit}-XXXXXX.txt)
+ local file="$(date +'%F-%H%M%S')${tag:+-$tag}"
+ REPLY="${TMPDIR:-/tmp}/$file"
[ -n "$stdin" ] && cat >| "$REPLY"
sensible-editor +start "$REPLY" </dev/tty >/dev/tty
- ln -sf "$REPLY" ${TMPDIR:-/tmp}/vit.latest
+ ln -Tsf $file ${TMPDIR:-/tmp}/${tag:-vit}
echo "$REPLY"
}
_vit() {
bindkey '\ef' _vit
pastebin() {
- local target="${(%):-"%D{%F-%H%M%S}"}-${1##*/}"
+ local target basename;
+ basename="${1##*/}"
+ case "$basename" in
+ (????-??-??-*) target="$basename";;
+ (*) target="${(%):-"%D{%F-%H%M%S}"}-$basename";;
+ esac
pub "${1}==${target}" 2>&1
}